@@ -247,8 +247,6 @@ |
||
247 | 247 |
05C8D22921EF0A9F0001E847 /* NavigationControllerProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05C8D22821EF0A9F0001E847 /* NavigationControllerProxy.swift */; }; |
248 | 248 |
05C8D22B21EF0EDC0001E847 /* NavigationControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05C8D22A21EF0EDC0001E847 /* NavigationControllerDelegate.swift */; }; |
249 | 249 |
05D269E6227ED9980030062C /* NavigationSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269E5227ED9970030062C /* NavigationSource.swift */; }; |
250 |
- 05D269E9227EDFA10030062C /* Array+GroupItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269E8227EDFA10030062C /* Array+GroupItem.swift */; }; |
|
251 |
- 05D269EB227EDFB00030062C /* Array+PhotoItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269EA227EDFB00030062C /* Array+PhotoItem.swift */; }; |
|
252 | 250 |
05D269EE227EE0EB0030062C /* GroupItemsOperator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269ED227EE0EB0030062C /* GroupItemsOperator.swift */; }; |
253 | 251 |
05D269F0227EE0FC0030062C /* PhotoItemsOperator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269EF227EE0FC0030062C /* PhotoItemsOperator.swift */; }; |
254 | 252 |
05D269F6227EE7F40030062C /* ItemOperator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269F5227EE7F40030062C /* ItemOperator.swift */; }; |
@@ -509,8 +507,6 @@ |
||
509 | 507 |
05C8D22821EF0A9F0001E847 /* NavigationControllerProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationControllerProxy.swift; sourceTree = "<group>"; }; |
510 | 508 |
05C8D22A21EF0EDC0001E847 /* NavigationControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationControllerDelegate.swift; sourceTree = "<group>"; }; |
511 | 509 |
05D269E5227ED9970030062C /* NavigationSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationSource.swift; sourceTree = "<group>"; }; |
512 |
- 05D269E8227EDFA10030062C /* Array+GroupItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+GroupItem.swift"; sourceTree = "<group>"; }; |
|
513 |
- 05D269EA227EDFB00030062C /* Array+PhotoItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+PhotoItem.swift"; sourceTree = "<group>"; }; |
|
514 | 510 |
05D269ED227EE0EB0030062C /* GroupItemsOperator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupItemsOperator.swift; sourceTree = "<group>"; }; |
515 | 511 |
05D269EF227EE0FC0030062C /* PhotoItemsOperator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoItemsOperator.swift; sourceTree = "<group>"; }; |
516 | 512 |
05D269F5227EE7F40030062C /* ItemOperator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemOperator.swift; sourceTree = "<group>"; }; |
@@ -808,7 +804,6 @@ |
||
808 | 804 |
05130FB121C9E703004EF1BE /* Reusable */ = { |
809 | 805 |
isa = PBXGroup; |
810 | 806 |
children = ( |
811 |
- 05D269E7227EDF490030062C /* ModelExtension */, |
|
812 | 807 |
05C71C0721DDBD55003E7CEE /* JSONCode.swift */, |
813 | 808 |
057CA9CF21DDB7DD00FB7D03 /* NetworkArrayData.swift */, |
814 | 809 |
0506441E1F8D09C00035857E /* StatusModel.swift */, |
@@ -1176,15 +1171,6 @@ |
||
1176 | 1171 |
path = NavigationControllerDelegate; |
1177 | 1172 |
sourceTree = "<group>"; |
1178 | 1173 |
}; |
1179 |
- 05D269E7227EDF490030062C /* ModelExtension */ = { |
|
1180 |
- isa = PBXGroup; |
|
1181 |
- children = ( |
|
1182 |
- 05D269E8227EDFA10030062C /* Array+GroupItem.swift */, |
|
1183 |
- 05D269EA227EDFB00030062C /* Array+PhotoItem.swift */, |
|
1184 |
- ); |
|
1185 |
- path = ModelExtension; |
|
1186 |
- sourceTree = "<group>"; |
|
1187 |
- }; |
|
1188 | 1174 |
05D269EC227EE0D60030062C /* Reusable */ = { |
1189 | 1175 |
isa = PBXGroup; |
1190 | 1176 |
children = ( |
@@ -1751,7 +1737,6 @@ |
||
1751 | 1737 |
0513102C21CA1B67004EF1BE /* OrderRepository.swift in Sources */, |
1752 | 1738 |
057CA9BA21DC836B00FB7D03 /* GroupPhotoRemoteAPI.swift in Sources */, |
1753 | 1739 |
0513102D21CA1B67004EF1BE /* GroupPhotoRepository.swift in Sources */, |
1754 |
- 05D269E9227EDFA10030062C /* Array+GroupItem.swift in Sources */, |
|
1755 | 1740 |
05C0D98E21D22119000B7B2A /* PhotoThumbupUserItem.swift in Sources */, |
1756 | 1741 |
05C71C0821DDBD55003E7CEE /* JSONCode.swift in Sources */, |
1757 | 1742 |
0513102E21CA1B67004EF1BE /* PhotoGroupRepository.swift in Sources */, |
@@ -1786,7 +1771,6 @@ |
||
1786 | 1771 |
0513104221CA1B67004EF1BE /* CreateGroupViewModel.swift in Sources */, |
1787 | 1772 |
0513104321CA1B67004EF1BE /* ScanQRViewModel.swift in Sources */, |
1788 | 1773 |
05130FB721C9E80F004EF1BE /* MessageListItem.swift in Sources */, |
1789 |
- 05D269EB227EDFB00030062C /* Array+PhotoItem.swift in Sources */, |
|
1790 | 1774 |
05B2C62121D727AA008063B3 /* StatusResource.swift in Sources */, |
1791 | 1775 |
051310C021CB6EF4004EF1BE /* UserInfo.swift in Sources */, |
1792 | 1776 |
05594BFF2240BEDE002D4910 /* PhotoDetailViewModel.swift in Sources */, |
@@ -2,16 +2,4 @@ |
||
2 | 2 |
<Bucket |
3 | 3 |
type = "1" |
4 | 4 |
version = "2.0"> |
5 |
- <Breakpoints> |
|
6 |
- <BreakpointProxy |
|
7 |
- BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint"> |
|
8 |
- <BreakpointContent |
|
9 |
- shouldBeEnabled = "Yes" |
|
10 |
- ignoreCount = "0" |
|
11 |
- continueAfterRunningActions = "No" |
|
12 |
- scope = "0" |
|
13 |
- stopOnStyle = "0"> |
|
14 |
- </BreakpointContent> |
|
15 |
- </BreakpointProxy> |
|
16 |
- </Breakpoints> |
|
17 | 5 |
</Bucket> |
@@ -1,14 +0,0 @@ |
||
1 |
-// |
|
2 |
-// Array+GroupItem.swift |
|
3 |
-// PaiaiDataKit |
|
4 |
-// |
|
5 |
-// Created by ffib on 2019/5/5. |
|
6 |
-// Copyright © 2019 FFIB. All rights reserved. |
|
7 |
-// |
|
8 |
- |
|
9 |
-import Foundation |
|
10 |
-extension Array where Element == GroupItem { |
|
11 |
- mutating func command() { |
|
12 |
- |
|
13 |
- } |
|
14 |
-} |
@@ -1,15 +0,0 @@ |
||
1 |
-// |
|
2 |
-// Array+PhotoItem.swift |
|
3 |
-// PaiaiDataKit |
|
4 |
-// |
|
5 |
-// Created by ffib on 2019/5/5. |
|
6 |
-// Copyright © 2019 FFIB. All rights reserved. |
|
7 |
-// |
|
8 |
- |
|
9 |
-import Foundation |
|
10 |
- |
|
11 |
-extension Array where Element == PhotoItem { |
|
12 |
- mutating func command() { |
|
13 |
- |
|
14 |
- } |
|
15 |
-} |
@@ -24,7 +24,7 @@ public class GroupViewModel { |
||
24 | 24 |
|
25 | 25 |
|
26 | 26 |
private var _isLoading = PublishSubject<Void>() |
27 |
- private let _items = BehaviorRelay<[PhotoItem]>(value: []) |
|
27 |
+ private let _items: BehaviorRelay<[PhotoItem]> |
|
28 | 28 |
private let _hasData = BehaviorRelay<Bool>(value: false) |
29 | 29 |
|
30 | 30 |
public var groupItem: BehaviorRelay<GroupItem> |
@@ -57,7 +57,8 @@ public class GroupViewModel { |
||
57 | 57 |
|
58 | 58 |
public weak var delegate: GroupViewModelDelegate? |
59 | 59 |
|
60 |
- public init(groupItem: GroupItem) { |
|
60 |
+ public init(groupItem: GroupItem, items: [PhotoItem] = []) { |
|
61 |
+ self._items = BehaviorRelay<[PhotoItem]>(value: items) |
|
61 | 62 |
self.repository = GroupPhotoRepository(groupId: groupItem.group_id) |
62 | 63 |
self.groupItem = BehaviorRelay<GroupItem>(value: groupItem) |
63 | 64 |
ShareRecentGroupInfo.add(groupItem) |
@@ -13,7 +13,7 @@ import RxDataSources |
||
13 | 13 |
|
14 | 14 |
public protocol PhotoDetailViewModelDelegate: class { |
15 | 15 |
func didSelected() |
16 |
- func navigateToGroup(_ item: GroupItem) |
|
16 |
+ func navigateToGroup(_ item: GroupItem, photoItems: [PhotoItem]) |
|
17 | 17 |
} |
18 | 18 |
|
19 | 19 |
|
@@ -180,7 +180,9 @@ public final class PhotoDetailViewModel { |
||
180 | 180 |
|
181 | 181 |
extension PhotoDetailViewModel { |
182 | 182 |
public func navigateToGroup() { |
183 |
- delegate?.navigateToGroup(GroupItem(json: _items.value[currIndex].toJSON() as [String : AnyObject])) |
|
183 |
+ let currItem = _items.value[currIndex] |
|
184 |
+ delegate?.navigateToGroup(GroupItem(json: currItem.toJSON() as [String : AnyObject]), |
|
185 |
+ photoItems: _items.value.filter { $0.photo_id == currItem.photo_id }) |
|
184 | 186 |
} |
185 | 187 |
|
186 | 188 |
public func didSelected() { |
@@ -38,7 +38,7 @@ extension HomeCoordinator: HomeViewModelDelegate { |
||
38 | 38 |
let coordinator = PhotoDetailCoordinator(vc, |
39 | 39 |
nav: navigationController, |
40 | 40 |
viewModel: PhotoDetailViewModel(items: items, currIndex: currIndex)) |
41 |
- coordinator.start().subscribe().disposed(by: disposeBag) |
|
41 |
+ coordinate(to: coordinator).subscribe().disposed(by: disposeBag) |
|
42 | 42 |
navigationController.pushViewController(coordinator.photoDetailViewController) |
43 | 43 |
} |
44 | 44 |
|
@@ -31,9 +31,9 @@ final class PhotoDetailCoordinator: BaseCoordinator<Void> { |
||
31 | 31 |
} |
32 | 32 |
|
33 | 33 |
extension PhotoDetailCoordinator: PhotoDetailViewModelDelegate { |
34 |
- func navigateToGroup(_ item: GroupItem) { |
|
34 |
+ func navigateToGroup(_ item: GroupItem, photoItems: [PhotoItem]) { |
|
35 | 35 |
let vc = GroupViewController.instantiate() |
36 |
- vc.viewModel = GroupViewModel(groupItem: item) |
|
36 |
+ vc.viewModel = GroupViewModel(groupItem: item, items: photoItems) |
|
37 | 37 |
let coordinator = GroupCoordinator(vc, |
38 | 38 |
navigationController: navigationController, |
39 | 39 |
navigationSource: .photoDetail) |